/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package comandos.Sel;
import entidades.Cliente;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import erros.ErroPersistencia;
/**
 * Classe que representa os comandos de consulta na tabela cliente no banco de
 * dados.
 * @author thiagostuckert
 */
public class CmdSelCliente extends CmdSel {
    /***
     * Metodo que monta o comando SQL para a consulta de cliente no banco de
     * dados.
     * @param cliente cliente a ser consultado no banco de dados.
     */
    public CmdSelCliente(final Cliente cliente) {
        comandoSQL = "SELECT * FROM CLIENTE WHERE CPF ='" + cliente.getCpf()
                + "';";
    }


   /***
    * Executa o comando no banco de dados.
    * @param conexao conexao com o banco de dados.
    * @throws erros.ErroPersistencia erro lançado caso a
    * execução não obtenha sucesso.
    */
    @Override
    public final Object executar(final Connection conexao)
            throws ErroPersistencia {
        try {
            Statement st = conexao.createStatement();
            ResultSet rs = st.executeQuery(comandoSQL);
            rs.next();
            return new Cliente(rs.getString("NOME"),
                           rs.getString("TELEFONE"),
                           rs.getString("CPF"));
        } catch (SQLException e){
            throw new ErroPersistencia("Erro na execucao do comando SQL");
        }
    }
}
